package com.petdog.infrastructure.entity;

import java.time.LocalDateTime;

/**
 * 图像实体类（支持数据集2）
 */
public class Image {
    private Long imageId;
    private String dogId;            // 狗ID（数据集2中的唯一标识）
    private Long userId;             // 用户ID（可为空，系统导入数据时不需要用户关联）
    private String fileId;
    private String originalName;
    private String storagePath;
    private String url;
    private String mimeType;
    private Long fileSize;
    private LocalDateTime uploadTime;
    private String source;           // 图片来源（如"dataset2"、"user_upload"）
    private Integer status;          // 文件状态（0-正常，1-已删除，2-无效图片）
    private Integer recognitionStatus; // 识别状态(0-未识别,1-识别中,2-已识别,3-识别失败)
    private Integer recognizedBreedId;
    private Float recognitionConfidence;

    // getter and setter methods
    public Long getImageId() {
        return imageId;
    }

    public void setImageId(Long imageId) {
        this.imageId = imageId;
    }

    public String getDogId() {
        return dogId;
    }

    public void setDogId(String dogId) {
        this.dogId = dogId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getFileId() {
        return fileId;
    }

    public void setFileId(String fileId) {
        this.fileId = fileId;
    }

    public String getOriginalName() {
        return originalName;
    }

    public void setOriginalName(String originalName) {
        this.originalName = originalName;
    }

    public String getStoragePath() {
        return storagePath;
    }

    public void setStoragePath(String storagePath) {
        this.storagePath = storagePath;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getMimeType() {
        return mimeType;
    }

    public void setMimeType(String mimeType) {
        this.mimeType = mimeType;
    }

    public Long getFileSize() {
        return fileSize;
    }

    public void setFileSize(Long fileSize) {
        this.fileSize = fileSize;
    }

    public LocalDateTime getUploadTime() {
        return uploadTime;
    }

    public void setUploadTime(LocalDateTime uploadTime) {
        this.uploadTime = uploadTime;
    }

    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getRecognitionStatus() {
        return recognitionStatus;
    }

    public void setRecognitionStatus(Integer recognitionStatus) {
        this.recognitionStatus = recognitionStatus;
    }

    public Integer getRecognizedBreedId() {
        return recognizedBreedId;
    }

    public void setRecognizedBreedId(Integer recognizedBreedId) {
        this.recognizedBreedId = recognizedBreedId;
    }

    public Float getRecognitionConfidence() {
        return recognitionConfidence;
    }

    public void setRecognitionConfidence(Float recognitionConfidence) {
        this.recognitionConfidence = recognitionConfidence;
    }
}
